package org.example.cake.service;

import org.apache.ibatis.annotations.Param;
import org.example.cake.entity.Address;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface AddressService{


    int deleteByPrimaryKey(Integer addressid);

    int insert(Address record);

    int insertSelective(Address record);

    Address selectByPrimaryKey(Integer addressid);

    int updateByPrimaryKeySelective(Address record);

    int updateByPrimaryKey(Address record);
    /**
     * 根据用户id查询收货地址
     * @param userid 用户id
     * @return 地址集合
     */
    public List<Address> selectAddressByUserid(@Param("userid") Integer userid);
    /**
     * 根据地址id查询地址详情
     * @param addressid 地址id
     * @return 地址实体
     */
    public Address selectAddressById(@Param("addressid") Integer addressid);

    /**
     * 修改地址
     * @param address 地址实体
     * @return 收影响的行数
     */
    public int updateAddress(Address address);

    /**
     * 新增地址
     * @param address 地址对象
     * @return 受影响的行数
     */
    public int insertAddress(Address address);

    /**
     * 根据地址id删除地址
     * @param addressid 地址id
     * @return 受影响的行数
     */
    public int deleteAddressById(@Param("addressid") Integer addressid);

    /**
     * 查询所有地址
     * @return 地址集合
     */
    List<Address> selectAllAddresss( String consignee,
                                    String phone,
                                    String province,
                                    String city,
                                    String district);

    /**
     * 根据地址id查询地址
     * @param addressid
     * @return
     */
    Address getById(Integer addressid);

    /**
     * 修改默认地址
     * @param defaultaddress 默认地址 0：默认 1：不默认
     * @param addressid 地址id
     * @return 受影响的行数
     */
    public int updateDefaultAddress(@Param("defaultaddress") Integer defaultaddress,@Param("addressid") Integer addressid);

}
